package com.zcl.IO.io1;

import org.junit.Test;

import java.io.File;
import java.io.IOException;

/**
 * @Description:
 * @author: zcl
 * @date: 2022/3/11  16:23
 * <p>
 * File类的一个对象,代表一个文件或者一个目录
 * <p>
 * getAbsolutePath(): 获取绝对路径
 * getPath(): 获取路径
 * getName(): 获取名称
 * getParent(): 获取上层目录名称,若无,返回null
 * length(): 获取文件长度,字节数.不能获取目录的长度
 * lastModified(): 获取最后一次的修改时间,毫秒值
 * list(): 获取指定目录下的所有文件或文件目录的名称的数组
 * listFiles(): 获取指定目录下的所有文件或文件目录的File的数组
 */
public class FileTest {

    @Test
    public void test1() {
        File file = new File("E:\\DeskTop\\project\\javaCoreTechnology");
        String[] list = file.list();
        for (String s : list) {
            System.out.println(s);
        }

        File[] files = file.listFiles();
        for (File file1 : files) {
            System.out.println(file1.getName());
        }
    }

    /**
     * public boolean renameTo(File destination): 把文件重命名问指定的文件路径
     * 比如:file1.renameTo(file2)
     *   要想保证返回true,需要file1存在于硬盘当中,file2不存在
     */
    @Test
    public void test2() {
        File file1 = new File("src\\com\\zcl\\IO\\io1\\haha.txt");
        File file2 = new File("src\\com\\zcl\\IO\\io1\\hehe.txt");
        boolean b = file2.renameTo(file1);

    }

    /**
     * public Boolean isDirectory():是否是目录
     * public Boolean isFile():是否是文件
     * public Boolean exists():是否存在
     * public Boolean canRead():是否能读
     * public Boolean canWrite():是否能写
     * public Boolean canExecute():是否能执行
     * public Boolean isHidden():是否隐藏
     */
    @Test
    public void test3(){
        File file = new File("src\\com\\zcl\\IO\\io1\\haha.txt");
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
        System.out.println(file.exists());
        System.out.println(file.canRead());
        System.out.println(file.canWrite());
        System.out.println(file.isHidden());
    }


    /**
     * public Boolean createNewFile():创建文件,如果文件存在,则不创建,返回false
     * public Boolean mkdir(): 创建文件目录,如果此文件目录存在,则不创建.如果改文件的上级目录不存在,也不创建
     * public Boolean mkdirs(): 创建文件目录,如果此文件目录的上级目录也不存在,则一并创建
     */
    @Test
    public void test4() throws IOException {
        File file = new File("src\\com\\zcl\\IO\\io1\\test.txt");
        if (!file.exists()){
            System.out.println(file);
            file.createNewFile();
            System.out.println("文件创建成功");
        }else {
            file.delete();
            System.out.println("文件删除成功");

        }
    }
}
